import java.util.Scanner;

public class Beer
{

    private String name;        //啤酒名
    private double alcohol;     //啤酒中的酒精浓度，例如5%为0.05
    //这个方法返回一个人（重量）要喝醉需要喝的杯数，
    //假设一杯啤酒为12盎司。这是一个估计值。该方法假
    //设超过0.08血液酒精浓度是醉酒状态

    /*
    前置条件：调用对象的实例变量含有值，传入变量类型为double的weight值即体重，并定义一个变量进行相应计算
    后置条件：返回浮点数double的变量值即所喝杯数
     */
    public double intoxicated(double weight)
    {
        double numDrinks;
        //这是对韦德马克公式的简论
        numDrinks=(0.08+0.015)*weight/(12*7.5*getAlcohol());
        return numDrinks;
    }
    /*
        前置条件：调用对象的实例变量含有值，输入变量类型为String的值
        后置条件：将传入变量写入调用对象的变量
     */
    public void setName()
    {
        Scanner beerName =new Scanner(System.in);
        System.out.print("Enter the beer you want to drink:");
        this.name = beerName.nextLine();

    }

    /*
        前置条件：调用对象的实例变量含有值，输入变量类型为double的值
        后置条件：将传入变量写入调用对象的变量
     */
    public void setAlcohol()
    {
        Scanner degree =new Scanner(System.in);
        System.out.print("Enter the degree of the alcohol:");
        this.alcohol = degree.nextDouble();
    }
    /*
        前置条件：调用对象的实例变量含有值
        后置条件：返回变量类型为String的值name即酒的名字
     */
    public String getName()
    {
        return name;
    }
    /*
        前置条件：调用对象的实例变量含有值
        后置条件：返回变量类型为double的值alcohol即酒精浓度
     */
    public double getAlcohol()
    {
        return alcohol;
    }
    /*
        前置条件：调用对象的实例变量含有值，传入变量为不为负数的浮点数double，Beer的实例对象，变量不为负数的浮点数Drinks
        后置条件：将传入变量写入屏幕
     */
    public static void outPut(double man,Beer one,double Drinks)
    {
        System.out.println("The weight of "+man+" will get drunk after you drink "+String.format("%.4f",Drinks)+" bottle of "+one.getName()+" Beer ");
    }

}

